package com.jic.purchase.model.vo.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@NoArgsConstructor
@ApiModel(description = " 采购表实体类")
public class PurchaseOrderRequest extends BaseEntityRequest {
    private static final long serialVersionUID = 1L;
    // @NotEmpty(message = "主键") 
    @ApiModelProperty(notes = "主键")

    private Long id;
    // @NotEmpty(message = "采购单号") 
    @ApiModelProperty(notes = "采购单号")

    private String code;
    // @NotEmpty(message = "采购单名称") 
    @ApiModelProperty(notes = "采购单名称")

    private String name;
    // @NotEmpty(message = "1采购单、2补货单、3退货单、4无采购收货单、5经销单、6、代销单、7、销售单；") 
    @ApiModelProperty(notes = "1采购单、2补货单、3退货单、4无采购收货单、5经销单、6、代销单、7、销售单；")

    private Integer type;
    // @NotEmpty(message = "合同id") 
    @ApiModelProperty(notes = "合同id")

    private Long contractId;

    @ApiModelProperty(notes = "合同编码")
    private String contractCode;

    private String supplierId;
    // @NotEmpty(message = "供应商名称") 
    @ApiModelProperty(notes = "供应商名称")

    private String supplierName;
    // @NotEmpty(message = "仓库ID") 
    @ApiModelProperty(notes = "仓库ID")

    private String warehouseId;
    // @NotEmpty(message = "仓库名称") 
    @ApiModelProperty(notes = "仓库名称")

    private String warehouseName;
    // @NotEmpty(message = "采购人编码") 
    @ApiModelProperty(notes = "采购人编码")

    private Long purchaseUserId;
    // @NotEmpty(message = "采购人名称") 
    @ApiModelProperty(notes = "采购人名称")

    private String purchaseUserName;
    // @NotEmpty(message = "采购单状态：0-待提交(初始值）；1-待审核（商家/店铺已提交，供应商未接单）；2-已审核(商家/店铺已提交，店铺已接单）；3-审核拒绝(商家/店铺已提交，供应商拒绝接单）；4-已发货(商家/店铺已提交，供应商已发货）；5-已结案(商家/店铺已提交，供应商已发货，商家/店铺已收货（已入库））；6-已过期(生效时间内，未到达已结案状态）；6-已作废(商家/店铺与供应商均作废；或者由运营平台判定作废）；") 
    @ApiModelProperty(notes = "采购单状态：0-待提交(初始值）；1-待审核（商家/店铺已提交，供应商未接单）；2-已审核(商家/店铺已提交，店铺已接单）；3-审核拒绝(商家/店铺已提交，供应商拒绝接单）；4-已发货(商家/店铺已提交，供应商已发货）；5-已结案(商家/店铺已提交，供应商已发货，商家/店铺已收货（已入库））；6-已过期(生效时间内，未到达已结案状态）；6-已作废(商家/店铺与供应商均作废；或者由运营平台判定作废）；")

    private Integer status;
    // @NotEmpty(message = "来源类型；1 手动录入") 
    @ApiModelProperty(notes = "来源类型；1 手动录入")

    private Integer fromType;
    // @NotEmpty(message = "收货方式 1 接收-入库 2 直接-入库 3 接收-检验-入库") 
    @ApiModelProperty(notes = "收货方式 1 接收-入库 2 直接-入库 3 接收-检验-入库")

    private Integer receiveMethod;
    // @NotEmpty(message = "配送方式 1 快递物流") 
    @ApiModelProperty(notes = "配送方式 1 快递物流")

    private Integer deliveryMethod;
    @ApiModelProperty("结算货币")
    private String transactionCurrency;
    // @NotEmpty(message = "发货地址省份ID") 
    @ApiModelProperty(notes = "发货地址省份ID")

    private Long sendProvinceId;
    // @NotEmpty(message = "发货地址城市ID") 
    @ApiModelProperty(notes = "发货地址城市ID")

    private Long sendCityId;
    // @NotEmpty(message = "发货地址区、县ID") 
    @ApiModelProperty(notes = "发货地址区、县ID")

    private Long sendAreaId;
    // @NotEmpty(message = "发货地址") 
    @ApiModelProperty(notes = "发货地址")

    private String sendAddress;
    // @NotEmpty(message = "收货地址省份ID") 
    @ApiModelProperty(notes = "收货地址省份ID")

    private Long receiveProvinceId;
    // @NotEmpty(message = "收货地址城市ID") 
    @ApiModelProperty(notes = "收货地址城市ID")

    private Long receiveCityId;
    // @NotEmpty(message = "收货地址区、县ID") 
    @ApiModelProperty(notes = "收货地址区、县ID")

    private Long receiveAreaId;
    // @NotEmpty(message = "收货地址") 
    @ApiModelProperty(notes = "收货地址")

    private String receiveAddress;
    // @NotEmpty(message = "要货单号") 
    @ApiModelProperty(notes = "要货单号")

    private String deliveryCode;
    // @NotEmpty(message = "采购日期") 
    @ApiModelProperty(notes = "采购日期")


    private Date purchaseTime;
    @ApiModelProperty("商家名称")

    private String storeName;

    // @NotEmpty(message = "预计到货日期") 
    @ApiModelProperty(notes = "预计到货日期")

    private Date deliveryTime;
    // @NotEmpty(message = "采购履行状态 1 未履行 2 部分履行 3 完全履行") 
    @ApiModelProperty(notes = "采购履行状态 1 未履行 2 部分履行 3 完全履行")

    private Integer fulfillStatus;
    // @NotEmpty(message = "附件 多个用,分割") 
    @ApiModelProperty(notes = "附件 多个用,分割")

    private String annex;
    @ApiModelProperty(notes = "采购单下商品")
    private String products;

    private String supplierContactsName;
}
